Skip to content

Remove serialization, bump 0.2.3, README overhaul#92

Merged
CalNightingale merged 6 commits intomainfrom
remove-serialization
Feb 17, 2026
Merged

Remove serialization, bump 0.2.3, README overhaul#92
CalNightingale merged 6 commits intomainfrom
remove-serialization

Conversation

@CalNightingale
Copy link
Collaborator

@CalNightingale CalNightingale commented Feb 17, 2026

Summary

Serialization removal:

  • Removes serialize() and deserialize() methods from CODObject — this Beam workflow pattern is no longer used
  • Removes 5 internal-only constructor parameters (lock_generation, metadata, _tar_synced, _metadata_synced, _thumbnail_synced) that existed solely to support deserialization
  • Simplifies CODLocker.acquire() by removing the lock re-acquisition branch

README overhaul:

  • Rewrote locking section to reflect the current mode="r"/"w"/"a" system (was still documenting deprecated lock=True/False)
  • Fixed incorrect lock-on-error docs: locks are released on user exceptions, only left hanging on sync failures
  • Added PyPI version, Python versions, license, and CI status badges

Housekeeping:

  • Bump version to 0.2.3
  • Added Python version classifiers to pyproject.toml and fixed requires-python from >=3.8 to >=3.11,<3.14
  • Updated CLAUDE.md to remove serialization references

Test plan

  • python -m unittest cloud_optimized_dicom.tests.test_metadata_serialization -v — all 8 pass
  • python -m unittest cloud_optimized_dicom.tests.test_cod_object -v — non-GCP test passes, GCP tests fail on auth (pre-existing)
  • Pre-commit hooks pass (autoflake, isort, black)
  • Confirmed serialize/deserialize no longer exist on CODObject
  • Full CI suite with SISKIN_ENV_ENABLED=1

🤖 Generated with Claude Code

CalNightingale and others added 2 commits February 17, 2026 15:54
This feature was designed for Apache Beam workflows to pass CODObjects
between DoFns, but COD usage has evolved to be atomic within `with`
blocks and nobody uses this anymore. Removing it simplifies the
constructor (5 fewer internal params), eliminates lock re-acquisition
logic in CODLocker, and reduces documentation overhead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CalNightingale CalNightingale self-assigned this Feb 17, 2026
CalNightingale and others added 4 commits February 17, 2026 16:06
The locking documentation still referenced the deprecated lock=True/False
API, dirty operations, and .sync() calls. Updated to document the current
mode="r"/"w"/"a" system with auto-sync on context exit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The README claimed locks hang on any exception, but the code actually
releases the lock on user exceptions (only local state affected) and
only leaves it hanging when sync itself fails (remote may be corrupt).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
requires-python was >=3.8 but the library requires 3.11+ and doesn't
support 3.14 yet. Added classifiers so the PyPI Python versions badge
renders correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CalNightingale CalNightingale changed the title Remove CODObject serialize/deserialize support Remove serialization, bump 0.2.3, README overhaul Feb 17, 2026
@CalNightingale CalNightingale merged commit 78a301a into main Feb 17, 2026
2 checks passed
@CalNightingale CalNightingale deleted the remove-serialization branch February 17, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant